1. Field of the Invention
The present invention relates to a technology for transferring data stored in a retransfer buffer provided in a communication system to a communication-destination terminal.
2. Description of the Related Art
In a communication system, a method for assuring reliability for performing communication between computer terminals has been proposed. In the method, there is a technology for retransferring data that has been transmitted between computer terminals when a communication failed or there is a possibility of a communication failure in the computer system. In the technology, it is required to provide a retransfer buffer that stores therein transmission data that has been transmitted to a receiving side and that is to be retransferred to the receiving side, if necessary, due to an occurrence of a failure.
In a communication system employing Socket-application program interface (API) or transmission control protocol/Internet protocol (TCP/IP) that are widely used for a communication between computer terminals, a retransfer buffer is generally provided in an operating system (OS) of a host computer. For example, retransfer data is copied in the retransfer buffer and the retransfer data is to be retransferred when a retransfer is required due to an absence of a communication acknowledgement.
Alternatively, in a copy offload engine (COE) method, a zero-copy communication that reduces an operation for copying transmission data is performed in the OS. In the zero-copy communication, the retransfer buffer is provided in a memory inside a network interface card (NIC). For example, a technology for providing a retransfer buffer in the memory inside the NIC (hereinafter, “NIC memory”) is disclosed in Japanese Patent Application Laid-Open No. 2004-274376. In the above technology, the transmission data is directly transferred to the NIC memory without being copied in a memory in the OS, and retransferred from the NIC memory when a retransfer is required. In a TCP/IP offload engine (TOE) method, it is also possible to use the NIC memory as a retransfer buffer.
However, in the communication method in which a retransfer buffer is provided in the OS of a host computer, since transmission data is copied to the retransfer buffer in the OS and then transferred to a NIC, it is difficult to increase a communication speed due to a load of copying data to a retransfer buffer.
If the retransfer buffer is provided in a NIC memory, a large capacity of the NIC memory is needed depending on a communication-destination terminal. Therefore, it is difficult to reduce a cost of the NIC.